Aufgabe 1 (10 Programmierpunkte - Abgabe per email)
Schreiben Sie eine C Funktion mit dem Namen my_sort_matrikelnummer(),
welche ein int-feld sortiert.
Die Deklaration der Funktion ist:
Der zweite Parameter ist die Anzahl der Einträge im zu sortierenden Feld. Beim Namen der Routine ist matrikelnummer durch Ihre Matrikelnummer zu ersetzen. Folgendes C Programm, bzw deren main-routine, soll nach Anpassung der Matrikelnummer als Testfunktion verwendet werden können.
main()
{
int i;
my_sort_000000(feld,
sizeof(feld)/sizeof(int) );
for (i=0;
i<sizeof(feld)/sizeof(int); i++)
printf("%d ",feld[i]);
printf("\n");
}
my_comp(int *a, int *b)
{
return
*a - *b;
}
my_sort_000000(int *feld, int feld_laenge)
{
qsort(feld,feld_laenge,
sizeof(int), my_comp);
}
Dabei wurde in diesem Beispiel die Systemfunktion qsort() verwendet. Sie sollen eine eigene Routine ohne Aufruf von Systemsortierroutinen schreiben.
Aufgabe 2 (5 Punkte)
Wieviel Vergleiche sind bei Ihrer Routine my_sort_matrikelnummer
nötig, wenn als Eingabe ein Feld der Länge 5 verwendet wird,
welches die letzten 5 Stellen Ihrer Matrikelnummer enthält. Erstellen
Sie dazu eine Tabelle mit dem jeweils aktuellen Inhalt des Feldes, und
markieren Sie die beiden Einträge, die verglichen werden. Markieren
Sie ferner im mit abzugebenden Listing die jeweilige Stelle des Vergleichs
im source code.